# @Version : 1.0
# @Author  : 刘宇
# @File    : 14_tuple_detail.py
# @Time    : 2025/10/13 10:02

# 1.空元组用()或者tuple()定义
tuple_a = ()
tuple_b = tuple()
print(f"tuple_a内容是:{tuple_a} 类型是{type(tuple_a)}")
print(f"tuple_b内容是:{tuple_b} 类型是{type(tuple_b)}")

# 2.元组的数据项可以是多个，而且数据类型没有限制
tuple_c = (100, "jack", 4.5, True, "jack")
print(tuple_c)

tuple_d = (100, "tom", ("天龙八部", "笑傲江湖", 300))
print(tuple_d)

# 3.元组的索引/下标是从0开始

# 4.元组索引必须在指定范围内使用

# 5.元组的元素是不可修改的
# tuple_e = (1, 2.1, '湖人总冠军')
# tuple_e[2] = 'python'  # 不可修改

# 6.可以修改元组内list的内容（包括修改、增加、删除等）
tuple_f = (1, 2.1, '湖人总冠军', ["jack", "tom", "mary"])

# 访问元组中list及其元素
print(tuple_f[3])  # ["jack","tom","mary"]
print(tuple_f[3][0])  # jack

# 修改
tuple_f[3][0] = "LY"
print(f"tuple_f 内容是{tuple_f}")

# 删除
del tuple_f[3][0]
print(f"tuple_f 内容是{tuple_f}")

# 增加
tuple_f[3].append("smith")
print(f"tuple_f 内容是{tuple_f}")

# 7.索引可以从尾部开始，最后一个元素的索引为-1，往前一位是-2，以此类推

tuple_g = (1, 2.1, '湖人总冠军', ["jack", "tom", "mary"])
print(tuple_g[-2]) # 湖人总冠军

# 定义只有一个元素的元组，需要带上逗号
tuple_h=(100,)
